package com.tedu.api.date;

import java.util.Calendar;
import java.util.Date;

/**java.util包
 * Calendar抽象类替换date(设计缺陷)  格里高利历法：公历
 * 替换方法：
 * 1.时间计算分量；根据毫秒数换算时间分量；年、月、日、时分秒
 * 2.设计时间分量；修改年、月、日、时分秒，底层用毫秒进行计算
 * 3.增加/减少时间分量；增加/减少指定毫秒数
 */
public class CalendarAPI {
    public static void main(String[] args) {
        //抽象类---匿名内部类【提供静态方法替代new，创建对象，这个静态方法封装new功能】
        //getInstance  获取一个实例---封装了new的功能
        Calendar cl = Calendar.getInstance();
        //获取年月日    get方法：获取年月日  时分秒
        int year = cl.get(Calendar.YEAR);  //get方法中传入静态属性
        System.out.println("当前的年份："+year);
        int month = cl.get(Calendar.MONTH)+1;//获取月，默认0~11月
        System.out.println("当前的月份："+month);
        int date = cl.get(Calendar.DAY_OF_MONTH);
        System.out.println("当前的日期："+date);
        int hour = cl.get(Calendar.HOUR);
        System.out.println("当前的时："+hour);
        int minute = cl.get(Calendar.MINUTE);
        System.out.println("当前的分："+minute);
        int second = cl.get(Calendar.SECOND);
        System.out.println("当前的秒："+second);
        //快速格式化代码：ctrl+Alt+l

        //设置时间分量：set(修改的时间，绝对时间)方法  底层使用毫秒数
        //需求：当前时间调整为明年今天
        cl.set(Calendar.YEAR,2025);
        Date d=cl.getTime();//获取时间，返回值Date类
        System.out.println("明年的今天"+d);
        //需求：获取2023年今天【通过第三个增加/减少时间毫秒数计算】
        //get方法(改变的时间，相对时间)
        cl.add(Calendar.YEAR,-1);
        d=cl.getTime();
        System.out.println("去年的今天："+d);

        //获取到当前月份总天数【最大天数】
        int max=cl.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println("月份最大天数："+max);
    }
}
